package com.rm.zeyou.service;

import com.github.pagehelper.PageInfo;
import com.rm.zeyou.entity.UserCoupon;
import com.baomidou.mybatisplus.extension.service.IService;
import com.rm.zeyou.response.ApiRestResponse;
import com.rm.zeyou.vo.request.SelectOrderCanUseCouponListVo;
import com.rm.zeyou.vo.request.SelectUserCouponListVo;
import com.rm.zeyou.vo.request.UserReceiveCouponVo;
import com.rm.zeyou.vo.request.UserReceiveLimitCouponVo;
import com.rm.zeyou.vo.response.SelectUserCouponListResponseVo;

/**
 * <p>
 * 用户优惠卷 服务类
 * </p>
 *
 * @author YanYang
 * @since 2025-03-12 15:55:09
 */
public interface UserCouponService extends IService<UserCoupon> {
    ApiRestResponse<PageInfo<SelectUserCouponListResponseVo>> selectUserCouponList(Long userId, SelectUserCouponListVo requestVo);

    ApiRestResponse<Integer> userReceiveCoupon(Long userId, UserReceiveCouponVo receiveCouponVo);

    ApiRestResponse<Integer> userReceiveLimitCoupon(Long userId, UserReceiveLimitCouponVo receiveCouponVo);

    ApiRestResponse<PageInfo<SelectUserCouponListResponseVo>> selectOrderCanUseCouponList(Long userId, SelectOrderCanUseCouponListVo canUseCouponListVo);

    void updateUserCouponStatus();
}
